<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: GCTensor Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.03</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarm__compute_1_1_g_c_tensor.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">GCTensor Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Interface for OpenGL ES tensor.  
 <a href="classarm__compute_1_1_g_c_tensor.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_g_c_tensor_8h_source.xhtml">GCTensor.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for GCTensor:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1_g_c_tensor__coll__graph.svg" width="96" height="187"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a4f2f38059311cf163fde21d2414048ee"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a4f2f38059311cf163fde21d2414048ee">GCTensor</a> ()</td></tr>
<tr class="memdesc:a4f2f38059311cf163fde21d2414048ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a4f2f38059311cf163fde21d2414048ee">More...</a><br /></td></tr>
<tr class="separator:a4f2f38059311cf163fde21d2414048ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16786bbce187082569ebbc297143ec99"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a16786bbce187082569ebbc297143ec99">GCTensor</a> (const <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:a16786bbce187082569ebbc297143ec99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied (As this class contains pointers).  <a href="#a16786bbce187082569ebbc297143ec99">More...</a><br /></td></tr>
<tr class="separator:a16786bbce187082569ebbc297143ec99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4f270493cf446b73c02f830e92be848"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#aa4f270493cf446b73c02f830e92be848">operator=</a> (const <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:aa4f270493cf446b73c02f830e92be848"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copy assigned (As this class contains pointers).  <a href="#aa4f270493cf446b73c02f830e92be848">More...</a><br /></td></tr>
<tr class="separator:aa4f270493cf446b73c02f830e92be848"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a7fad2ddfb9132875b8f119c14dd32e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a9a7fad2ddfb9132875b8f119c14dd32e">GCTensor</a> (<a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a9a7fad2ddfb9132875b8f119c14dd32e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#a9a7fad2ddfb9132875b8f119c14dd32e">More...</a><br /></td></tr>
<tr class="separator:a9a7fad2ddfb9132875b8f119c14dd32e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac819d83569c1bcd78c6e56dcdb995791"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ac819d83569c1bcd78c6e56dcdb995791">operator=</a> (<a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:ac819d83569c1bcd78c6e56dcdb995791"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#ac819d83569c1bcd78c6e56dcdb995791">More...</a><br /></td></tr>
<tr class="separator:ac819d83569c1bcd78c6e56dcdb995791"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac4a7cca5d7e6a0028379b9fa874ce338"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ac4a7cca5d7e6a0028379b9fa874ce338">~GCTensor</a> ()=default</td></tr>
<tr class="memdesc:ac4a7cca5d7e6a0028379b9fa874ce338"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor.  <a href="#ac4a7cca5d7e6a0028379b9fa874ce338">More...</a><br /></td></tr>
<tr class="separator:ac4a7cca5d7e6a0028379b9fa874ce338"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6dc6b773780dd6b1ad17fc82368d9f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ad6dc6b773780dd6b1ad17fc82368d9f3">allocator</a> ()</td></tr>
<tr class="memdesc:ad6dc6b773780dd6b1ad17fc82368d9f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the tensor's allocator.  <a href="#ad6dc6b773780dd6b1ad17fc82368d9f3">More...</a><br /></td></tr>
<tr class="separator:ad6dc6b773780dd6b1ad17fc82368d9f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14c53d2d17be6fa8a2c9861527c7b002"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a14c53d2d17be6fa8a2c9861527c7b002">map</a> (bool blocking=true)</td></tr>
<tr class="memdesc:a14c53d2d17be6fa8a2c9861527c7b002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue a map operation of the allocated buffer on the given queue.  <a href="#a14c53d2d17be6fa8a2c9861527c7b002">More...</a><br /></td></tr>
<tr class="separator:a14c53d2d17be6fa8a2c9861527c7b002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ffeb3b5abb3d61f62b58a391816201c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a1ffeb3b5abb3d61f62b58a391816201c">unmap</a> ()</td></tr>
<tr class="memdesc:a1ffeb3b5abb3d61f62b58a391816201c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enqueue an unmap operation of the allocated and mapped buffer on the given queue.  <a href="#a1ffeb3b5abb3d61f62b58a391816201c">More...</a><br /></td></tr>
<tr class="separator:a1ffeb3b5abb3d61f62b58a391816201c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97de03c31e0ca04be6960e2e3ffdca95"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#a97de03c31e0ca04be6960e2e3ffdca95">info</a> () const override</td></tr>
<tr class="memdesc:a97de03c31e0ca04be6960e2e3ffdca95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the tensor's metadata.  <a href="#a97de03c31e0ca04be6960e2e3ffdca95">More...</a><br /></td></tr>
<tr class="separator:a97de03c31e0ca04be6960e2e3ffdca95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5b3539cef9e42dee1882e909ba34e4f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#aa5b3539cef9e42dee1882e909ba34e4f">info</a> () override</td></tr>
<tr class="memdesc:aa5b3539cef9e42dee1882e909ba34e4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the tensor's metadata.  <a href="#aa5b3539cef9e42dee1882e909ba34e4f">More...</a><br /></td></tr>
<tr class="separator:aa5b3539cef9e42dee1882e909ba34e4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace7b855e3c647d29cc37a1ce147901dc"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#ace7b855e3c647d29cc37a1ce147901dc">buffer</a> () const override</td></tr>
<tr class="memdesc:ace7b855e3c647d29cc37a1ce147901dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return a pointer to CPU memory.  <a href="#ace7b855e3c647d29cc37a1ce147901dc">More...</a><br /></td></tr>
<tr class="separator:ace7b855e3c647d29cc37a1ce147901dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acccf4173f8c67e6f93ea3353c9590c9e"><td class="memItemLeft" align="right" valign="top">GLuint&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml#acccf4173f8c67e6f93ea3353c9590c9e">gc_buffer</a> () const override</td></tr>
<tr class="memdesc:acccf4173f8c67e6f93ea3353c9590c9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Interface to be implemented by the child class to return the tensor's gles compute buffer id.  <a href="#acccf4173f8c67e6f93ea3353c9590c9e">More...</a><br /></td></tr>
<tr class="separator:acccf4173f8c67e6f93ea3353c9590c9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_g_c_tensor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_g_c_tensor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a></td></tr>
<tr class="memitem:a78e2cb61c2ed12459fea5a97728d74d2 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a78e2cb61c2ed12459fea5a97728d74d2">IGCTensor</a> ()</td></tr>
<tr class="memdesc:a78e2cb61c2ed12459fea5a97728d74d2 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a78e2cb61c2ed12459fea5a97728d74d2">More...</a><br /></td></tr>
<tr class="separator:a78e2cb61c2ed12459fea5a97728d74d2 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a15242f453f1928c3dbc2a30ec08480e6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a15242f453f1928c3dbc2a30ec08480e6">IGCTensor</a> (const <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:a15242f453f1928c3dbc2a30ec08480e6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copied (As this class contains pointers).  <a href="#a15242f453f1928c3dbc2a30ec08480e6">More...</a><br /></td></tr>
<tr class="separator:a15242f453f1928c3dbc2a30ec08480e6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a53ba7801ed7dbf945a0413addd6dc990 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a53ba7801ed7dbf945a0413addd6dc990">operator=</a> (const <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;)=delete</td></tr>
<tr class="memdesc:a53ba7801ed7dbf945a0413addd6dc990 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prevent instances of this class from being copy assigned (As this class contains pointers).  <a href="#a53ba7801ed7dbf945a0413addd6dc990">More...</a><br /></td></tr>
<tr class="separator:a53ba7801ed7dbf945a0413addd6dc990 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adcca5090c26cd20e37d2878510b32bad inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#adcca5090c26cd20e37d2878510b32bad">IGCTensor</a> (<a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:adcca5090c26cd20e37d2878510b32bad inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#adcca5090c26cd20e37d2878510b32bad">More...</a><br /></td></tr>
<tr class="separator:adcca5090c26cd20e37d2878510b32bad inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa49cf1d6ea350774509911cad4903ad6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#aa49cf1d6ea350774509911cad4903ad6">operator=</a> (<a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml">IGCTensor</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:aa49cf1d6ea350774509911cad4903ad6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be moved.  <a href="#aa49cf1d6ea350774509911cad4903ad6">More...</a><br /></td></tr>
<tr class="separator:aa49cf1d6ea350774509911cad4903ad6 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f7b3eca1cadbb4e72617eca3d6faeb inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#aa5f7b3eca1cadbb4e72617eca3d6faeb">~IGCTensor</a> ()=default</td></tr>
<tr class="memdesc:aa5f7b3eca1cadbb4e72617eca3d6faeb inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Virtual destructor.  <a href="#aa5f7b3eca1cadbb4e72617eca3d6faeb">More...</a><br /></td></tr>
<tr class="separator:aa5f7b3eca1cadbb4e72617eca3d6faeb inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14c53d2d17be6fa8a2c9861527c7b002 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a14c53d2d17be6fa8a2c9861527c7b002">map</a> (bool blocking=true)</td></tr>
<tr class="memdesc:a14c53d2d17be6fa8a2c9861527c7b002 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Map on an allocated buffer.  <a href="#a14c53d2d17be6fa8a2c9861527c7b002">More...</a><br /></td></tr>
<tr class="separator:a14c53d2d17be6fa8a2c9861527c7b002 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ffeb3b5abb3d61f62b58a391816201c inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a1ffeb3b5abb3d61f62b58a391816201c">unmap</a> ()</td></tr>
<tr class="memdesc:a1ffeb3b5abb3d61f62b58a391816201c inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unmap an allocated and mapped buffer.  <a href="#a1ffeb3b5abb3d61f62b58a391816201c">More...</a><br /></td></tr>
<tr class="separator:a1ffeb3b5abb3d61f62b58a391816201c inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the contents of the tensor synchronously.  <a href="#ac8bb3912a3ce86b15842e79d0b421204">More...</a><br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61f1b6619df2a9324c6360b077083f39 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a61f1b6619df2a9324c6360b077083f39">needs_shifting</a> () const </td></tr>
<tr class="memdesc:a61f1b6619df2a9324c6360b077083f39 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag indicating whether the tensor has been left aligned by a kernel and therefore needs shifting.  <a href="#a61f1b6619df2a9324c6360b077083f39">More...</a><br /></td></tr>
<tr class="separator:a61f1b6619df2a9324c6360b077083f39 inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69cfba8177b402abe134fdad5fe4c7dc inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a69cfba8177b402abe134fdad5fe4c7dc">set_needs_shifting</a> (bool <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a61f1b6619df2a9324c6360b077083f39">needs_shifting</a>)</td></tr>
<tr class="memdesc:a69cfba8177b402abe134fdad5fe4c7dc inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the flag indicating whether or not a tensor needs shifting.  <a href="#a69cfba8177b402abe134fdad5fe4c7dc">More...</a><br /></td></tr>
<tr class="separator:a69cfba8177b402abe134fdad5fe4c7dc inherit pub_methods_classarm__compute_1_1_i_g_c_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1_i_tensor"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1_i_tensor')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a></td></tr>
<tr class="memitem:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a4aa2df36743089ac6814d83e7d4b7ffc">~ITensor</a> ()=default</td></tr>
<tr class="memdesc:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#a4aa2df36743089ac6814d83e7d4b7ffc">More...</a><br /></td></tr>
<tr class="separator:a4aa2df36743089ac6814d83e7d4b7ffc inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">uint8_t *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a48c7a05cc63f541d732250e39339cee2">ptr_to_element</a> (const <a class="el" href="classarm__compute_1_1_coordinates.xhtml">Coordinates</a> &amp;<a class="el" href="hwc_8hpp.xhtml#abaabdc509cdaba7df9f56c6c76f3ae19">id</a>) const </td></tr>
<tr class="memdesc:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a pointer to the element at the passed coordinates.  <a href="#a48c7a05cc63f541d732250e39339cee2">More...</a><br /></td></tr>
<tr class="separator:a48c7a05cc63f541d732250e39339cee2 inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a4a774ad8d5f4837f3d7de1876d367c5b">copy_from</a> (const <a class="el" href="classarm__compute_1_1_i_tensor.xhtml">ITensor</a> &amp;src)</td></tr>
<tr class="memdesc:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy the content of another tensor.  <a href="#a4a774ad8d5f4837f3d7de1876d367c5b">More...</a><br /></td></tr>
<tr class="separator:a4a774ad8d5f4837f3d7de1876d367c5b inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0b092c86d6e0fb8a114281565953a02a">print</a> (std::ostream &amp;s, <a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a> io_fmt=<a class="el" href="structarm__compute_1_1_i_o_format_info.xhtml">IOFormatInfo</a>()) const </td></tr>
<tr class="memdesc:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="mdescLeft">&#160;</td><td class="mdescRight">Print a tensor to a given stream using user defined formatting information.  <a href="#a0b092c86d6e0fb8a114281565953a02a">More...</a><br /></td></tr>
<tr class="separator:a0b092c86d6e0fb8a114281565953a02a inherit pub_methods_classarm__compute_1_1_i_tensor"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Interface for OpenGL ES tensor. </p>

<p>Definition at line <a class="el" href="_g_c_tensor_8h_source.xhtml#l00037">37</a> of file <a class="el" href="_g_c_tensor_8h_source.xhtml">GCTensor.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4f2f38059311cf163fde21d2414048ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Default constructor. </p>

</div>
</div>
<a class="anchor" id="a16786bbce187082569ebbc297143ec99"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prevent instances of this class from being copied (As this class contains pointers). </p>

</div>
</div>
<a class="anchor" id="a9a7fad2ddfb9132875b8f119c14dd32e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be moved. </p>

</div>
</div>
<a class="anchor" id="ac4a7cca5d7e6a0028379b9fa874ce338"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Virtual destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ad6dc6b773780dd6b1ad17fc82368d9f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_tensor_allocator.xhtml">ITensorAllocator</a>* allocator </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a pointer to the tensor's allocator. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the tensor's allocator </dd></dl>

<p>Referenced by <a class="el" href="_g_l_e_s___c_o_m_p_u_t_e_2_helper_8h_source.xhtml#l00049">arm_compute::test::gles_compute::create_tensor()</a>.</p>

</div>
</div>
<a class="anchor" id="ace7b855e3c647d29cc37a1ce147901dc"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t* buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return a pointer to CPU memory. </p>
<dl class="section return"><dt>Returns</dt><dd>A CPU pointer to the beginning of the image's allocation. </dd></dl>

<p>Reimplemented from <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#ace7b855e3c647d29cc37a1ce147901dc">IGCTensor</a>.</p>

</div>
</div>
<a class="anchor" id="acccf4173f8c67e6f93ea3353c9590c9e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">GLuint gc_buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return the tensor's gles compute buffer id. </p>
<dl class="section return"><dt>Returns</dt><dd>A SSBO buffer id. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_g_c_tensor.xhtml#a78046d8dc1b472a13fe70d8862f2edaf">IGCTensor</a>.</p>

</div>
</div>
<a class="anchor" id="a97de03c31e0ca04be6960e2e3ffdca95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a>* info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return the tensor's metadata. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the tensor's metadata. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a0e95dc1e53c361348314873b168ae237">ITensor</a>.</p>

<p>Referenced by <a class="el" href="validation_2_g_l_e_s___c_o_m_p_u_t_e_2_g_e_m_m_8cpp_source.xhtml#l00059">arm_compute::test::validation::DATA_TEST_CASE()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00103">GCAccessor::data_type()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00088">GCAccessor::element_size()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00123">GCAccessor::fixed_point_position()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00098">GCAccessor::format()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00108">GCAccessor::num_channels()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00113">GCAccessor::num_elements()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00118">GCAccessor::padding()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00128">GCAccessor::quantization_info()</a>, <a class="el" href="_g_c_accessor_8h_source.xhtml#l00083">GCAccessor::shape()</a>, and <a class="el" href="_g_c_accessor_8h_source.xhtml#l00093">GCAccessor::size()</a>.</p>

</div>
</div>
<a class="anchor" id="aa5b3539cef9e42dee1882e909ba34e4f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_tensor_info.xhtml">TensorInfo</a>* info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">override</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Interface to be implemented by the child class to return the tensor's metadata. </p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the tensor's metadata. </dd></dl>

<p>Implements <a class="el" href="classarm__compute_1_1_i_tensor.xhtml#a7e6b5e55a2914b1fb1966310e7733ac4">ITensor</a>.</p>

</div>
</div>
<a class="anchor" id="a14c53d2d17be6fa8a2c9861527c7b002"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void map </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>blocking</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enqueue a map operation of the allocated buffer on the given queue. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">blocking</td><td>(Optional) If true, then the mapping will be ready to use by the time this method returns, else it is the caller's responsibility to flush the queue and wait for the mapping operation to have completed before using the returned mapping pointer.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The mapping address. </dd></dl>

<p>Referenced by <a class="el" href="_g_c_accessor_8h_source.xhtml#l00072">GCAccessor::GCAccessor()</a>, and <a class="el" href="utils_2_utils_8h_source.xhtml#l00185">arm_compute::utils::unmap()</a>.</p>

</div>
</div>
<a class="anchor" id="aa4f270493cf446b73c02f830e92be848"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">delete</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Prevent instances of this class from being copy assigned (As this class contains pointers). </p>

</div>
</div>
<a class="anchor" id="ac819d83569c1bcd78c6e56dcdb995791"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a>&amp; operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a> &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be moved. </p>

</div>
</div>
<a class="anchor" id="a1ffeb3b5abb3d61f62b58a391816201c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void unmap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Enqueue an unmap operation of the allocated and mapped buffer on the given queue. </p>
<dl class="section note"><dt>Note</dt><dd>This method simply enqueues the unmap operation, it is the caller's responsibility to flush the queue and make sure the unmap is finished before the memory is accessed by the device. </dd></dl>

<p>Referenced by <a class="el" href="utils_2_utils_8h_source.xhtml#l00185">arm_compute::utils::unmap()</a>, and <a class="el" href="_g_c_accessor_8h_source.xhtml#l00078">GCAccessor::~GCAccessor()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>arm_compute/runtime/GLES_COMPUTE/<a class="el" href="_g_c_tensor_8h_source.xhtml">GCTensor.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_g_c_tensor.xhtml">GCTensor</a></li>
    <li class="footer">Generated on Fri Mar 2 2018 12:37:58 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
